import type { IdDTO, SysBaseVO } from "../type/baseType";

/**
 * 字典搜索筛选
 */
export interface SysDictFiltDTO {
    name?: string
    identifier?: string
}

/**
 * 字典数据搜索筛选
 */
export interface SysDictDataFiltDTO {
    dictKey?: string
    dictValue?: string
}

/**
 * 字典编辑类型
 */
export interface SysDictDTO extends IdDTO {
    name: string
    identifier: string
    comment?: number
}

/**
 * 字典数据编辑类型
 */
export interface SysDictDataDTO extends IdDTO {
    identifier: string
    dictKey: string
    dictValue: string
    comment?: number
}

/**
 * 字典类型
 */
export interface SysDictVO extends SysBaseVO {
    name: string
    identifier: string
    comment?: number
    dictDataList?: SysDictDataVO[]
}

/**
 * 字典数据类型
 */
export interface SysDictDataVO extends SysBaseVO {
    identifier: string
    dictKey: string
    dictValue: string
    comment?: number
}

/**
 * 字典VO转字典DTO
 * @param sysDictVO 
 * @returns 
 */
export const sysDictVOToDTO = (sysDictVO: SysDictVO): SysDictDTO => {
    return {
        id: sysDictVO.id,
        name: sysDictVO.name,
        identifier: sysDictVO.identifier,
        comment: sysDictVO.comment
    }
}

/**
 * 字典数据VO转字典数据DTO
 * @param sysDictVO 
 * @returns 
 */
export const sysDictDataVOToDTO = (sysDictDataVO: SysDictDataVO): SysDictDataDTO => {
    return {
        id: sysDictDataVO.id,
        identifier: sysDictDataVO.identifier,
        dictKey: sysDictDataVO.dictKey,
        dictValue: sysDictDataVO.dictValue,
        comment: sysDictDataVO.comment
    }
}